Move Inner to Upper Level Refactoring  

 

�� ������ Move Inner to Upper Level ï¿½ï¿½ï¿½ï¿½ï¿½ä¸µ ������ ��ſ��� ��������  overview�� �����ϰ�  how �� �����丵�� IntelliJ IDEA���� ���� �� �ִ°��� �����մϴ�.

����  


Move Inner to Upper  �����丵�� ����ڿ��� ���� Ŭ������ ���� �������� �ű�� ���� ����մϴ�.  ï¿½ï¿½ �����, ���� Ŭ������ �� ���� ��������,  �׸��� ���� ������� Ŭ������ �ְ��� ���ؿ� ������ ���ο� ���Ͽ� �Ű����ϴ�.  ï¿½ï¿½ï¿½ �����ϴ� ������ �ڵ������� ������Ʈ�˴ϴ�.


���� Ŭ������ ������ �ƴϰ� �޼ҵ�� �ܺ� Ŭ������ �ʵ忡 ������ �ʿ�� �� ��쿡, �ܺ� Ŭ���� �ν��Ͻ��� �̵��ϴ� ���� Ŭ������ �����ڿ� �Ű� �����μ� �Ѿ �� �ֽ��ϴ�.


���� ���, �츮�� ���� �ڵ带 �����ϴ�:

 
    public class OuterClass {
 
        public void foo() {
            //some code here
        }
 
        public class InnerClass {
            public void innerClassMethod() {
                foo();
            }
        }
    }


Moving Inner to Upper  ï¿½ï¿½ï¿½ï¿½ï¿½ä¸µ �Ŀ� OuterClass  ï¿½Úµï¿½ï¿½ ������ ���� ���� �� �Դϴ�

 
    public class OuterClass {
        public void foo() {
            //some code here
        }
    }



�׸��� �̰��� InnerClass  ï¿½Ô´Ï´ï¿½ (���ο� ���Ͽ���): 

 
    class InnerClass {
        private OuterClass outerClass;
 
        public InnerClass(OuterClass outerClass) {
            this.outerClass = outerClass;
        }
 
        public void innerClassMethod() {
            outerClass.foo();
        }
    }



���ο��� ������������ �̵�


���� Ŭ������ ���� �������� �̵��ϱ� ���Ͽ�:

 1.   Project ï¿½ï¿½ï¿½â¿¡ï¿½ï¿½
 
���� Ŭ������ �����ϰ� Ŭ���� ����� ������ ��ư Ŭ���Ͽ� �ҷ����� �˾� �޴����� Refactor Move... ï¿½ï¿½ Ŭ���Ͻʽÿ�.


����� Ŭ������ �����ϱ� ���� � �ٸ� ���⸦ ����� �� �ֽ��ϴ�, ���� ��� Structure.


editor ï¿½ï¿½ï¿½ï¿½ : 
���ϴ� Ŭ���� ���𿡼��� ij���� ��ġ�ϰ� �� �޴����� �Ǵ� �����Ϳ��� ������ ��ư�� Ŭ���ϴ� �Ϳ� ���� �ҷ����� �˾� �޴� ���� Refactor |  Move...�� Ŭ���Ͻʽÿ�.


����� ������ ���� Ŭ������ �ű���� �ϰ� ���� ��, ������ ���� Ŭ������ ���� �����丵�� �����ϸ� ����� ������ ���̾�α׸� �� ���Դϴ�:




���� ���� Ŭ������ �ٸ� Ŭ������ ������  Move Members  �����丵�� ���ʽÿ�.

 2.  Move Inner to Upper Level  ï¿½ï¿½ï¿½Ì¾ï¿½ï¿½Î±×°ï¿½ ��Ÿ�� ���Դϴ�:

Ŭ���� �̸�

 

�� �ؽ�Ʈ �ʵ忡�� ����� ���� Ŭ������ �̸��� ������ �� �ְų�, ������ �ϳ��� ����� �� �ֽ��ϴ�.

 

�Ű� �����μ� �ܺ� Ŭ������ �ν��Ͻ� �ѱ��


�� üũ �ڽ��� ���õ� �� Parameter name  �ؽ�Ʈ �ʵ�� ��� �����ϰ� �ǰ� ����� �ܺ� Ŭ������ �� ���� �̸��� ������ �� �ְų�, IDEA�� ���� ���ȵ� �ϳ��� ����� �� �ֽ��ϴ�.
���� �� üũ �ڽ��� ���õ��� ������ ���õ� Ŭ������ ���� ���� �� �Ͽ� �̵����� �����ϴ� ������ ������Ʈ�˴ϴ�.


���� �Ű����� Ŭ������ ������ ���̶�� �� üũ �ڽ��� �Ұ����ϰ� �ϰ� �˴ϴ�.

����� �̸� ���� ���


�� üũ �ڽ��� �����ϸ� ����� � ����� �߰ߵǾ����� �����ϰ�, �׵��� ��ü�� �����ϵ��� ����մϴ�.  ï¿½ï¿½ üũ �ڽ��� ���õ��� ���� ��, IDEA�� ��ü ��ɸ� �ڵ������� �����մϴ�.


������ üũ �ڽ��� ���õ��� �ʾ��� ����, ���� �߰ߵ� ����� � �б� ���� ���Ͽ��� �����ϸ� ��ü ����� Ȯ���ϴ� ������Ʈ�� ��ſ� ���� �� �Դϴ�.


Refactoring Preview ï¿½ï¿½ï¿½Ì¾ï¿½Î±×¿ï¿½ï¿½ï¿½ (���� �װ��� ��Ÿ����) ����� ����� ������ ��� �� �ֽ��ϴ�.  ï¿½ï¿½ï¿½ï¿½ï¿½ä¸µï¿½ï¿½ �Բ� �����ϱ� ���ؼ�, Do Refactor�� Ŭ���մϴ��׷��� �ʴٸ� Cancel �� Ŭ���մϴ�. ���� ���� ������ Refactoring Preview�� ���ʽÿ�.



 3.   OK�� �����ϴ�, �׸��� ���ϴ� Ŭ������ �̵��� ���Դϴ�.